The present invention relates to messaging systems and, in particular, to allocation of resource usage to various applications in a messaging system.
Voice messaging systems are common in today""s business community. Most business organizations or enterprises make use of a private branch exchange (PBX) to direct a caller""s telephone call to the appropriate extension of the called party. If the called party is unable to answer the telephone call, the telephone call is forwarded to a voice messaging system, which allows the caller to leave a voice message in the mailbox assigned to the called party. Messages left for called parties within the business organization can be retrieved from memory by calling the voice messaging system using a telephone and entering appropriate commands via a touch-tone keypad. Retrieved messages can be played, forwarded or deleted. An example of a voice messaging system of this nature is the Series 6 sold by Mitel Corporation of Ottawa, Ontario, Canada.
In addition to voice messages, communications within business organizations are also stored in facsimile and text formats. In the past, separate messaging systems have been used to handle these different types of communications. Unfortunately, prior art messaging systems designed to handle one type of communication have not provided any means to interact with messaging systems handling other types of communications. This has required users to access each messaging system individually to retrieve messages and has required business organizations to maintain and manage multiple messaging systems separately. As a result, it has been necessary to establish separate accounts, address lists and message mailboxes in each messaging system for the various users in the business organizations.
More recently, attempts have been made to interconnect different messaging systems to provide access to different types of messages from a single point. For example, U.S. Pat. No. 5,349,636 to Irribarren discloses a system and method for voice mail systems and interactive voice response (IVR) systems. The Irribarren system includes a voice message system and a text message system integrated via a network, which coordinates the functions of each individual message system. A user may access messages stored in the voice message system and in the text message system via a single telephone call. Although this system allows access to different types of messages, the voice message and text message systems require separate management.
The current trend is to integrate these various messaging systems to allow users to access all types of communications once a connection is made to the messaging system. To that end, unified messaging systems have been developed to provide users access to virtually all of their communications. Messaging systems of this nature store all messages for entities within the enterprise at a common location. The entities may be individuals, groups, departments, or any appropriate logical organizations. Users accessing the messaging system via a telephone, desktop computer or other communication device have access to all of their messages regardless of message type and regardless of the type of communication device used to access the messaging system. Appropriate message translators such as text-to-speech (TTS) converters, speech-to-text (SST) converters etc. are included to enable users to retrieve messages stored in formats not supported by the communication devices used to access the messaging system.
Unified messaging systems include both incoming (messaging, auto-attendant, etc.) and outgoing (paging, fax delivery, call-me, etc.) applications. These incoming and outgoing applications run either on separate or shared ports or resources. Using separate ports for applications does not make particularly good use of available hardware but guarantees resource availability. Using shared ports, makes good use of available hardware but does not provide for guaranteed resource availability. Typically, the administrator of the messaging system statically assigns separate and shared ports to the applications within the messaging system based on a traffic model for the messaging system. Unfortunately, statically assigning ports to the applications can lead to a number of problems depending on traffic.
Consider a case of an eight (8) port messaging system having four ports dedicated to handle only incoming calls, two shared ports capable of handling any application, and two shared ports dedicated to handle only outgoing applications. The two shared ports and two outgoing application ports provide four ports for fax resources, which are available on a first-come, first-served basis. With this static port allocation, a number of problems can arise depending on traffic. If, for example, a large number of fax and page delivery jobs are pending and if two ports are being used by an outgoing application such as call-me and one port is being used for normal messaging, then only two ports are available to handle the fax and page delivery jobs even though three of the incoming call ports are idle. As another example, if there are no fax or page delivery jobs pending but six of the ports are being used for normal messaging, the two outgoing application ports will be available to handle any upcoming fax or page delivery jobs. Hence, a caller to the messaging system will get a busy tone since no ports are available to handle the incoming call even though the two outgoing application ports are idle. As will be appreciated, statically assigning ports to applications can lead to poor resource allocation especially if unexpected traffic situations arise.
Thus, there is a need for improvements to resource allocation in messaging systems.
The present invention provides improved resource allocation to applications of a messaging system. By monitoring the messaging system, resource allocation to applications can be performed dynamically so that better and more effective utilization of the resource can be had. The improved resource allocation leads to more responsive servicing of applications (e.g., incoming and outgoing applications) by the messaging system.
According to one aspect of the present invention there is provided a resource allocation manager to allocate resources to handle applications in a messaging system. The resource allocation manager includes: a database storing a set of resource allocation rules to govern the allocation of resources to applications; a resource allocation engine responsive to events that potentially effect the manner in which the resources are allocated, the resource allocation engine accessing the database and interpreting the resource allocation rules in response to events to determine if the events warrant a reallocation of the resources to applications; and allocation agents responsive to the resource allocation engine and reallocating the resources to applications when detected events warrant a reallocation of the resources.
In one embodiment, the resource allocation manager further comprises a plurality of event detection agents to monitor the messaging system to detect the events and to communicate the events to the resource allocation engine. The event detection agents include a traffic level agent to detect traffic levels. The event detection agents can also include a system clock agent to detect particular times of the day, which is useful for detecting traffic peak periods and non-peak periods or business and non-business hours.
According to another aspect of the present invention there is provided a method for allocating resources to handle applications in a messaging system. The method includes the operations of: establishing a set of resource allocation rules to govern the allocation of the resources to applications; monitoring the messaging system to detect events that potentially effect the manner in which the resources are allocated; accessing the resource allocation rules in response to the detected events to determine if the detected events warrant a reallocation of the resources to handle applications; and reallocating the resources to handle applications in accordance with the resource allocation rules if the detected events warrant a reallocation of resources.
According to another aspect of the present invention there is provided a computer readable medium including computer code for allocating resources of a messaging system to handle applications in the messaging system. The computer readable medium includes: computer program code for accessing a set of resource allocation rules that govern allocation of the resources to applications in the messaging system; computer program code for monitoring of the messaging system to detect events that potentially effect the manner in which the resources are allocated; computer program code for determining whether the detected events trigger a reallocation of the resources to handle applications based on the resource allocation rules; and computer program code for reallocating the resources to handle applications when the computer program code for determining triggers the reallocation.
The present invention provides advantages in that resources are allocated to applications dynamically to accommodate changes in messaging system requirements. As a result, situations where some resources are idle yet at the same time resources are unavailable to handle other applications, occur to a lesser extent than in conventional messaging systems implementing a static resource allocation methodology. In high capacity messaging systems, a rules-based approach for allocating resources to applications provides for the reallocation of a significant number of resources in an intelligent manner.